void main() {
  /**
   * Dart中的数字由三个关键字描述
   *   number 数字类型 (既可以是整数，也可以是小数)
   *       int 整数
   *       double 小数
   *   数字类型的字面量
   *      1. 十进制
   *      2. 八进制
   *      3. 十六进制
   *   数字类型的运算
   *      1. 算术运算符
   *          + - * / ~/ %
   *      2. 关系运算符
   *          > < >= <= == !=
   *      3. 逻辑运算符
   *          && || !
   *      4. 赋值运算符
   *          = += -= *= /= ~/= %=
   *   转为类型方法
   *      int.parse()
   *      double.parse()
   *      int.toString()
   *      double.toString()
   *   数字类型的方法
   *      1. 取整
   *          floor()
   *          ceil()
   *          round()
   *      2. 取余
   *          remainder()
   *      3. 取绝对值
   *          abs()
   */
  // 声明整数
  int count = 1;
  print('int: $count');

  // 声明小数
  double price = 1.2;
  print('double: $price');

  // 声明数值类型
  num num1 = 1;
  num1 = 1.2;
  print('num: $num1');

  // 声明八进制
  int oct = 012;
  print('oct: $oct');

  // 类型转换
  print('toString: ${count.toString()}');
  print('toInt: ${price.toInt()}');

  // 四舍五入
  print('round: ${price.round()}');

  // 取两位小数
  print('toStringAsFixed: ${price.toStringAsFixed(2)}');

  // 返回余数
  print('remainder: ${count.remainder(2)}');

  // 取绝对值
  print('abs: ${price.abs()}');

  // 数值比较 0 相等 1 大于 -1 小于
  print('compareTo: ${price.compareTo(1.2)}');

  // 返回大约公约数
  print('gcd: ${count.gcd(2)}');

  // 返回小于等于当前值的最大整数
  print('floor: ${price.floor()}');

  // 科学计数法
  print('parse: ${num.parse('1.2e2')}');
}